home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
Gestalt.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
8KB
|
232 lines
/*
File: Gestalt.idl
Contains: Gestalt Interfaces.
Version: Technology: System 7.5
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __GESTALT_IDL__
#define __GESTALT_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __MIXEDMODE_IDL__
#include <MixedMode.idl>
#endif
#ifdef __SOMIDL__
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
typedef OpaquePtr SelectorFunctionProcPtr;
typedef OpaquePtr SelectorFunctionUPP;
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/* These functions are built into System 7.5, but not on earlier systems*/
#endif
#if FOR_SYSTEM8_COOPERATIVE
typedef OpaquePtr GestaltIteratorRef;
#endif
#if FOR_SYSTEM8_COOPERATIVE
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#endif
#if !OLDROUTINELOCATIONS
/* Environs Equates*/
typedef SOMLargeStruct SysEnvRec; /* Derived from a struct of 16 bytes in size */
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#endif
#endif
/* Environment Selectors */
/*
FORMAT OF gestaltATalkVersion RESPONSE
--------------------------------------
The version is stored in the high three bytes of the response value. Let us number
the bytes in the response value from 0 to 3, where 0 is the least-significant byte.
Byte#: 3 2 1 0
Value: 0xMMNNRR00
Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor
revision number, and byte 1 (RR) contains a constant that represents the release
stage. Byte 0 always contains 0x00. The constants for the release stages are:
development = 0x20
alpha = 0x40
beta = 0x60
final = 0x80
release = 0x80
For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57
is loaded, you receive the long integer response value 0x39008000.
*/
/*
The gestaltNativeCPUtype ('cput') selector can be used to determine the
native CPU type for all Macs running System 7.5 or later.
The 'cput' selector is not available when running System 7.0 (or earlier)
on most 68K machines. If 'cput' is not available, then the 'proc' selector
should be used to determine the processor type.
An application should always try the 'cput' selector first. This is because,
on PowerPC machines, the 'proc' selector will reflect the CPU type of the
emulator's "virtual processor" rather than the native CPU type.
The values specified below are accurate. Prior versions of the Gestalt
interface file contained values that were off by one.
The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that
causes the 'cput' selector to respond with the value 5. This behavior
occurs only when running System 7.1. System 7.5 fixes the bug by replacing
the faulty 'cput' selector function with the correct one.
*/
#if !OLDROUTINELOCATIONS
#endif
/*
To obtain information about the connected keyboard(s), one should
use the ADB Manager API. See Technical Note OV16 for details.
*/
/*
MACHINE TYPE CONSTANTS NAMING CONVENTION
All future machine type constant names take the following form:
gestalt<lineName><modelNumber>
Line Names
The following table contains the lines currently produced by Apple and the
lineName substrings associated with them:
Line lineName
------------------------- ------------
Macintosh LC "MacLC"
Macintosh Performa "Performa"
Macintosh PowerBook "PowerBook"
Macintosh PowerBook Duo "PowerBookDuo"
Power Macintosh "PowerMac"
Apple Workgroup Server "AWS"
The following table contains lineNames for some discontinued lines:
Line lineName
------------------------- ------------
Macintosh Quadra "MacQuadra" (preferred)
"Quadra" (also used, but not preferred)
Macintosh Centris "MacCentris"
Model Numbers
The modelNumber is a string representing the specific model of the machine
within its particular line. For example, for the Power Macintosh 8100/80,
the modelNumber is "8100".
Some Performa & LC model numbers contain variations in the rightmost 1 or 2
digits to indicate different RAM and Hard Disk configurations. A single
machine type is assigned for all variations of a specific model number. In
this case, the modelNumber string consists of the constant leftmost part
of the model number with 0s for the variant digits. For example, the
Performa 6115 and Performa 6116 are both return the same machine type
constant: gestaltPerforma6100.
OLD NAMING CONVENTIONS
The "Underscore Speed" suffix
In the past, Apple differentiated between machines that had the same model
number but different speeds. For example, the Power Macintosh 8100/80 and
Power Macintosh 8100/100 return different machine type constants. This is
why some existing machine type constant names take the form:
gestalt<lineName><modelNumber>_<speed>
e.g.
gestaltPowerMac8100_110
gestaltPowerMac7100_80
gestaltPowerMac7100_66
It is no longer necessary to use the "underscore speed" suffix. Starting with
the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is
no longer used to differentiate between machine types. This is why a Power
Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type
constant: gestaltPowerMac7200.
The "Screen Type" suffix
All PowerBook models prior to the PowerBook 190, and all PowerBook Duo models
before the PowerBook Duo 2300 take the form:
gestalt<lineName><modelNumber><screenType>
Where <screenType> is "c" or the empty string.
e.g.
gestaltPowerBook100
gestaltPowerBookDuo280
gestaltPowerBookDuo280c
gestaltPowerBook180
gestaltPowerBook180c
Starting with the PowerBook 190 series and the PowerBook Duo 2300 series, machine
types are no longer differentiated based on screen type. This is why a PowerBook
5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant:
gestaltPowerBook5300.
Macintosh LC 630 gestaltMacLC630
Macintosh Performa 6200 gestaltPerforma6200
Macintosh Quadra 700 gestaltQuadra700
Macintosh PowerBook 5300 gestaltPowerBook5300
Macintosh PowerBook Duo 2300 gestaltPowerBookDuo2300
Power Macintosh 8500 gestaltPowerMac8500
*/
/*
The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
The same selector has been renamed gestaltMixedModeAttr to properly reflect the
Inside Mac: PowerPC System Software documentation. The gestaltMixedModeVersion
symbol has been preserved only for backwards compatibility.
Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
will be removed in a future release of the Interfaces.
For the first version of Mixed Mode, both meanings of the 'mixd' selector are
functionally identical. They both return 0x00000001. In subsequent versions
of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
version number, but rather, with 32 attribute bits with various meanings.
*/
/*
* PPC will return the combination of following bit fields.
* e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
* indicates PPC is cuurently is only supports real time delivery
* and both incoming and outgoing network sessions are allowed.
* By default local real time delivery is supported as long as PPCInit has been called.
*/
#endif /* __SOMIDL__ */
#endif /* __GESTALT_IDL__ */